﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace JeanFish.Security
{
    /// <summary>
    /// Define a factory used to generate an hash algorithm instance (HashHelper).
    /// </summary>
    public interface IHashAlgorithmFactory
    {
        /// <summary>
        /// Get hash algorithm instance (HashHelper) by specifying the name of the algorithm.
        /// </summary>
        /// <param name="hashAlgorithm">Hash algorithm name</param>
        /// <returns>Hash algorithm instance (HashHelper)</returns>
        HashHelper GetHashAlgorithm(string hashAlgorithm);
        /// <summary>
        /// Get the name of MD5 hash algorithm.
        /// </summary>
        string MD5 { get; }
        /// <summary>
        /// Get the name of SHA256 hash algorithm.
        /// </summary>
        string SHA256 { get; }
        /// <summary>
        /// Get the name of SHA512 hash algorithm.
        /// </summary>
        string SHA512 { get; }
    }
}
